package persistencia.entidades;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.SequenceGenerator;
import javax.validation.constraints.NotNull;

/**
 * @author Maciel Melo
 * @since 09/11/2013
 * @see macielmelo.eti.br
 */
@SuppressWarnings("javadoc")
@Entity(name = "consulta")
public class Consulta {

	@Id
	@SequenceGenerator(sequenceName = "public.seq_consulta", name = "seq_consulta", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_consulta")
	private Long id;

	@NotNull
	private String descricao;

	// --------------------------------------Relacionamento-----------------------//
	@ManyToOne
	private Historico historico;

	@ManyToOne
	private Supervisor supervisor;

	@OneToOne(mappedBy = "consulta")
	private Agenda agenda;

	@OneToOne
	private Diagnostico diagnostico;

	@OneToOne
	private ExameFisico exameFísico;

	@OneToOne
	private HistoricoAnamnese historicoAnamnese;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Historico getHistorico() {
		return historico;
	}

	public void setHistorico(Historico historico) {
		this.historico = historico;
	}

	public Supervisor getSupervisor() {
		return supervisor;
	}

	public void setSupervisor(Supervisor supervisor) {
		this.supervisor = supervisor;
	}

	public Agenda getAgenda() {
		return agenda;
	}

	public void setAgenda(Agenda agenda) {
		this.agenda = agenda;
	}

	public Diagnostico getDiagnostico() {
		return diagnostico;
	}

	public void setDiagnostico(Diagnostico diagnostico) {
		this.diagnostico = diagnostico;
	}

	public ExameFisico getExameFísico() {
		return exameFísico;
	}

	public void setExameFísico(ExameFisico exameFísico) {
		this.exameFísico = exameFísico;
	}

	public HistoricoAnamnese getHistoricoAnamnese() {
		return historicoAnamnese;
	}

	public void setHistoricoAnamnese(HistoricoAnamnese historicoAnamnese) {
		this.historicoAnamnese = historicoAnamnese;
	}

}
